home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 60.zip / BS1 part 60 / Highspeed pascal.adf / Interface / Graphics.pas < prev    next >
Pascal/Delphi Source File  |  1992-01-16  |  21KB  |  1,024 lines

  1. Unit Graphics;
  2.  
  3. Interface
  4. Uses Hardware, Input, Exec;
  5.  
  6. Type
  7.   pCustom = ^tCustom;
  8.   pLayer = ^tLayer;
  9.   pClipRect = ^tClipRect;
  10.   pRastPort = ^tRastPort;
  11.   tRectangle = Record
  12.           MinX: Integer;
  13.           MinY: Integer;
  14.           MaxX: Integer;
  15.           MaxY: Integer;
  16.         End;
  17.  
  18.   pBitMap = ^tBitMap;
  19.   pLayer_Info = ^tLayer_Info;
  20.   pRegion = ^tRegion;
  21.   tLayer = Record
  22.           front: pLayer;
  23.           back: pLayer;
  24.           ClipRect: pClipRect;
  25.           rp: pRastPort;
  26.           bounds: tRectangle;
  27.           reserved: Array [0..3] of ShortInt;
  28.           priority: Integer;
  29.           Flags: Integer;
  30.           SuperBitMap: pBitMap;
  31.           SuperClipRect: pClipRect;
  32.           Window: Pointer;
  33.           Scroll_X: Integer;
  34.           Scroll_Y: Integer;
  35.           cr: pClipRect;
  36.           cr2: pClipRect;
  37.           crnew: pClipRect;
  38.           SuperSaveClipRects: pClipRect;
  39.           _cliprects: pClipRect;
  40.           LayerInfo: pLayer_Info;
  41.           Lock: tSignalSemaphore;
  42.           reserved3: Array [0..7] of ShortInt;
  43.           ClipRegion: pRegion;
  44.           saveClipRects: pRegion;
  45.           reserved2: Array [0..21] of ShortInt;
  46.           DamageList: pRegion;
  47.         End;
  48.  
  49.   tcollTable = Record
  50.           collPtrs: Array [0..15] of pPointer;
  51.         End;
  52.  
  53.   pRegionRectangle = ^tRegionRectangle;
  54.   tRegion = Record
  55.           bounds: tRectangle;
  56.           RegionRectangle: pRegionRectangle;
  57.         End;
  58.  
  59.   pViewPort = ^tViewPort;
  60.   pcprlist = ^tcprlist;
  61.   tView = Record
  62.           ViewPort: pViewPort;
  63.           LOFCprList: pcprlist;
  64.           SHFCprList: pcprlist;
  65.           DyOffset: Integer;
  66.           DxOffset: Integer;
  67.           Modes: Integer;
  68.         End;
  69.  
  70.   pVSprite = ^tVSprite;
  71.   pBob = ^tBob;
  72.   tVSprite = Record
  73.           NextVSprite: pVSprite;
  74.           PrevVSprite: pVSprite;
  75.           DrawPath: pVSprite;
  76.           ClearPath: pVSprite;
  77.           OldY: Integer;
  78.           OldX: Integer;
  79.           Flags: Integer;
  80.           Y: Integer;
  81.           X: Integer;
  82.           Height: Integer;
  83.           Width: Integer;
  84.           Depth: Integer;
  85.           MeMask: Integer;
  86.           HitMask: Integer;
  87.           ImageData: pInteger;
  88.           BorderLine: pInteger;
  89.           CollMask: pInteger;
  90.           SprColors: pInteger;
  91.           VSBob: pBob;
  92.           PlanePick: ShortInt;
  93.           PlaneOnOff: ShortInt;
  94.           VUserExt: Integer;
  95.         End;
  96.  
  97.   tRegionRectangle = Record
  98.           Next: pRegionRectangle;
  99.           Prev: pRegionRectangle;
  100.           bounds: tRectangle;
  101.         End;
  102.  
  103.   tTextFont = Record
  104.           tf_Message: tMessage;
  105.           tf_YSize: Integer;
  106.           tf_Style: ShortInt;
  107.           tf_Flags: ShortInt;
  108.           tf_XSize: Integer;
  109.           tf_Baseline: Integer;
  110.           tf_BoldSmear: Integer;
  111.           tf_Accessors: Integer;
  112.           tf_LoChar: ShortInt;
  113.           tf_HiChar: ShortInt;
  114.           tf_CharData: Pointer;
  115.           tf_Modulo: Integer;
  116.           tf_CharLoc: Pointer;
  117.           tf_CharSpace: Pointer;
  118.           tf_CharKern: Pointer;
  119.         End;
  120.  
  121.   pTmpRas = ^tTmpRas;
  122.   pAreaInfo = ^tAreaInfo;
  123.   pGelsInfo = ^tGelsInfo;
  124.   pTextFont = ^tTextFont;
  125.   tRastPort = Record
  126.           Layer: pLayer;
  127.           BitMap: pBitMap;
  128.           AreaPtrn: pInteger;
  129.           TmpRas: pTmpRas;
  130.           AreaInfo: pAreaInfo;
  131.           GelsInfo: pGelsInfo;
  132.           Mask: ShortInt;
  133.           FgPen: ShortInt;
  134.           BgPen: ShortInt;
  135.           AOlPen: ShortInt;
  136.           DrawMode: ShortInt;
  137.           AreaPtSz: ShortInt;
  138.           linpatcnt: ShortInt;
  139.           dummy: ShortInt;
  140.           Flags: Integer;
  141.           LinePtrn: Integer;
  142.           cp_x: Integer;
  143.           cp_y: Integer;
  144.           minterms: Array [0..7] of ShortInt;
  145.           PenWidth: Integer;
  146.           PenHeight: Integer;
  147.           Font: pTextFont;
  148.           AlgoStyle: ShortInt;
  149.           TxFlags: ShortInt;
  150.           TxHeight: Integer;
  151.           TxWidth: Integer;
  152.           TxBaseline: Integer;
  153.           TxSpacing: Integer;
  154.           RP_User: Pointer;
  155.           longreserved: Array [0..1] of LongInt;
  156.           wordreserved: Array [0..6] of Integer;
  157.           reserved: Array [0..7] of ShortInt;
  158.         End;
  159.  
  160.   tTextAttr = Record
  161.           ta_Name: pShortInt;
  162.           ta_YSize: Integer;
  163.           ta_Style: ShortInt;
  164.           ta_Flags: ShortInt;
  165.         End;
  166.  
  167.   pColorMap = ^tColorMap;
  168.   pCopList = ^tCopList;
  169.   pUCopList = ^tUCopList;
  170.   pRasInfo = ^tRasInfo;
  171.   tViewPort = Record
  172.           Next: pViewPort;
  173.           ColorMap: pColorMap;
  174.           DspIns: pCopList;
  175.           SprIns: pCopList;
  176.           ClrIns: pCopList;
  177.           UCopIns: pUCopList;
  178.           DWidth: Integer;
  179.           DHeight: Integer;
  180.           DxOffset: Integer;
  181.           DyOffset: Integer;
  182.           Modes: Integer;
  183.           SpritePriorities: ShortInt;
  184.           reserved: ShortInt;
  185.           RasInfo: pRasInfo;
  186.         End;
  187.  
  188.   ttPoint = Record
  189.           x: Integer;
  190.           y: Integer;
  191.         End;
  192.  
  193.   tSimpleSprite = Record
  194.           posctldata: pInteger;
  195.           height: Integer;
  196.           x: Integer;
  197.           y: Integer;
  198.           num: Integer;
  199.         End;
  200.  
  201.   tDBufPacket = Record
  202.           BufY: Integer;
  203.           BufX: Integer;
  204.           BufPath: pVSprite;
  205.           BufBuffer: pInteger;
  206.         End;
  207.  
  208.   tcopinit = Record
  209.           diagstrt: Array [0..3] of Integer;
  210.           sprstrtup: Array [0..39] of Integer;
  211.           sprstop: Array [0..1] of Integer;
  212.         End;
  213.  
  214.   pIsrvstr = ^tIsrvstr;
  215.   tIsrvstr = Record
  216.           is_Node: tNode;
  217.           Iptr: pIsrvstr;
  218.           code: pPointer;
  219.           ccode: pPointer;
  220.           Carg: LongInt;
  221.         End;
  222.  
  223.   pAnimOb = ^tAnimOb;
  224.   pAnimComp = ^tAnimComp;
  225.   tAnimOb = Record
  226.           NextOb: pAnimOb;
  227.           PrevOb: pAnimOb;
  228.           Clock: LongInt;
  229.           AnOldY: Integer;
  230.           AnOldX: Integer;
  231.           AnY: Integer;
  232.           AnX: Integer;
  233.           YVel: Integer;
  234.           XVel: Integer;
  235.           YAccel: Integer;
  236.           XAccel: Integer;
  237.           RingYTrans: Integer;
  238.           RingXTrans: Integer;
  239.           AnimORoutine: pPointer;
  240.           HeadComp: pAnimComp;
  241.           AUserExt: Integer;
  242.         End;
  243.  
  244.   tcprlist = Record
  245.           Next: pcprlist;
  246.           start: pInteger;
  247.           MaxCount: Integer;
  248.         End;
  249.  
  250.   pView = ^tView;
  251.   pcopinit = ^tcopinit;
  252.   pbltnode = ^tbltnode;
  253.   pTask = ^tTask;
  254.   pSimpleSprite = ^tSimpleSprite;
  255.   ppSimpleSprite = ^pSimpleSprite;
  256.   pSignalSemaphore = ^tSignalSemaphore;
  257.   tGfxBase = Record
  258.           LibNode: tLibrary;
  259.           ActiView: pView;
  260.           copinit: pcopinit;
  261.           cia: pLongInt;
  262.           blitter: pLongInt;
  263.           LOFlist: pInteger;
  264.           SHFlist: pInteger;
  265.           blthd: pbltnode;
  266.           blttl: pbltnode;
  267.           bsblthd: pbltnode;
  268.           bsblttl: pbltnode;
  269.           vbsrv: tInterrupt;
  270.           timsrv: tInterrupt;
  271.           bltsrv: tInterrupt;
  272.           TextFonts: tList;
  273.           DefaultFont: pTextFont;
  274.           Modes: Integer;
  275.           VBlank: ShortInt;
  276.           Debug: ShortInt;
  277.           BeamSync: Integer;
  278.           system_bplcon0: Integer;
  279.           SpriteReserved: ShortInt;
  280.           bytereserved: ShortInt;
  281.           Flags: Integer;
  282.           BlitLock: Integer;
  283.           BlitNest: Integer;
  284.           BlitWaitQ: tList;
  285.           BlitOwner: pTask;
  286.           TOF_WaitQ: tList;
  287.           DisplayFlags: Integer;
  288.           SimpleSprites: ppSimpleSprite;
  289.           MaxDisplayRow: Integer;
  290.           MaxDisplayColumn: Integer;
  291.           NormalDisplayRows: Integer;
  292.           NormalDisplayColumns: Integer;
  293.           NormalDPMX: Integer;
  294.           NormalDPMY: Integer;
  295.           LastChanceMemory: pSignalSemaphore;
  296.           LCMptr: pInteger;
  297.           MicrosPerLine: Integer;
  298.           MinDisplayColumn: Integer;
  299.           reserved: Array [0..22] of LongInt;
  300.         End;
  301.  
  302.   tAreaInfo = Record
  303.           VctrTbl: pInteger;
  304.           VctrPtr: pInteger;
  305.           FlagTbl: pShortInt;
  306.           FlagPtr: pShortInt;
  307.           Count: Integer;
  308.           MaxCount: Integer;
  309.           FirstX: Integer;
  310.           FirstY: Integer;
  311.         End;
  312.  
  313.   tBitMap = Record
  314.           BytesPerRow: Integer;
  315.           Rows: Integer;
  316.           Flags: ShortInt;
  317.           Depth: ShortInt;
  318.           pad: Integer;
  319.           Planes: Array [0..7] of pShortInt;
  320.         End;
  321.  
  322.   pDBufPacket = ^tDBufPacket;
  323.   tBob = Record
  324.           Flags: Integer;
  325.           SaveBuffer: pInteger;
  326.           ImageShadow: pInteger;
  327.           Before: pBob;
  328.           After: pBob;
  329.           BobVSprite: pVSprite;
  330.           BobComp: pAnimComp;
  331.           DBuffer: pDBufPacket;
  332.           BUserExt: Integer;
  333.         End;
  334.  
  335.   tUCopList = Record
  336.           Next: pUCopList;
  337.           FirstCopList: pCopList;
  338.           CopList: pCopList;
  339.         End;
  340.  
  341.   tAnimComp = Record
  342.           Flags: Integer;
  343.           Timer: Integer;
  344.           TimeSet: Integer;
  345.           NextComp: pAnimComp;
  346.           PrevComp: pAnimComp;
  347.           NextSeq: pAnimComp;
  348.           PrevSeq: pAnimComp;
  349.           AnimCRoutine: pPointer;
  350.           YTrans: Integer;
  351.           XTrans: Integer;
  352.           HeadOb: pAnimOb;
  353.           AnimBob: pBob;
  354.         End;
  355.  
  356.   tCopIns = Record
  357.           OpCode: Integer;
  358.         Case Integer of
  359.         0: (
  360.           nxtlist: pCopList;
  361.         );
  362.         1: (
  363.           WaitPos: Record
  364.           V: Integer;
  365.           H: Integer;
  366.           End;
  367.         );
  368.         2: (
  369.           Dest: Record
  370.           Addr: Integer;
  371.           Data: Integer;
  372.           End;
  373.         );
  374.         End;
  375.  
  376.   tClipRect = Record
  377.           Next: pClipRect;
  378.           prev: pClipRect;
  379.           lobs: pLayer;
  380.           BitMap: pBitMap;
  381.           bounds: tRectangle;
  382.           _p1: pClipRect;
  383.           _p2: pClipRect;
  384.           reserved: LongInt;
  385.         End;
  386.  
  387.   tRasInfo = Record
  388.           Next: pRasInfo;
  389.           BitMap: pBitMap;
  390.           RxOffset: Integer;
  391.           RyOffset: Integer;
  392.         End;
  393.  
  394.   pcollTable = ^tcollTable;
  395.   tGelsInfo = Record
  396.           sprRsrvd: ShortInt;
  397.           Flags: ShortInt;
  398.           gelHead: pVSprite;
  399.           gelTail: pVSprite;
  400.           nextLine: pInteger;
  401.           lastColor: ppInteger;
  402.           collHandler: pcollTable;
  403.           leftmost: Integer;
  404.           rightmost: Integer;
  405.           topmost: Integer;
  406.           bottommost: Integer;
  407.           firstBlissObj: Pointer;
  408.           lastBlissObj: Pointer;
  409.         End;
  410.  
  411.   tColorMap = Record
  412.           Flags: ShortInt;
  413.           Type_: ShortInt;
  414.           Count: Integer;
  415.           ColorTable: Pointer;
  416.         End;
  417.  
  418.   tLayer_Info = Record
  419.           top_layer: pLayer;
  420.           check_lp: pLayer;
  421.           obs: pLayer;
  422.           FreeClipRects: tMinList;
  423.           Lock: tSignalSemaphore;
  424.           gs_Head: tList;
  425.           longreserved: LongInt;
  426.           Flags: Integer;
  427.           fatten_count: ShortInt;
  428.           LockLayersCount: ShortInt;
  429.           LayerInfo_extra_size: Integer;
  430.           blitbuff: pInteger;
  431.           LayerInfo_extra: Pointer;
  432.         End;
  433.  
  434.   tTmpRas = Record
  435.           RasPtr: pShortInt;
  436.           Size: LongInt;
  437.         End;
  438.  
  439.   pCopIns = ^tCopIns;
  440.   tCopList = Record
  441.           Next: pCopList;
  442.           _CopList: pCopList;
  443.           _ViewPort: pViewPort;
  444.           CopIns: pCopIns;
  445.           CopPtr: pCopIns;
  446.           CopLStart: pInteger;
  447.           CopSStart: pInteger;
  448.           Count: Integer;
  449.           MaxCount: Integer;
  450.           DyOffset: Integer;
  451.         End;
  452.  
  453.   PLANEPTR = pShortInt;
  454.   Point = ttPoint;
  455.   pTextAttr = ^tTextAttr;
  456.   pRectangle = ^tRectangle;
  457.   ppAnimOb = ^pAnimOb;
  458.   pGfxBase = ^tGfxBase;
  459.  
  460.  
  461. Var
  462.   GfxBase: pGfxBase;
  463.  
  464.  
  465. Const
  466.   FSF_BOLD = $2;
  467.   FSF_EXTENDED = $8;
  468.   RIGHTHIT = $8;
  469.   DBUFFER = $4;
  470.   GELGONE = $400;
  471.   ALERTLAYERSNOMEM = $83010000;
  472.   SAVEBOB = $1;
  473.   NTSC = $1;
  474.   CPR_NT_SHT = $4000;
  475.   FPB_DISKFONT = $1;
  476.   HAM = $800;
  477.   SAVEPRESERVE = $1000;
  478.   FPF_DISKFONT = $2;
  479.   CR_NEEDS_NO_CONCEALED_RASTERS = $1;
  480.   DIW_VRTCL_POS_SHIFT = $7;
  481.   AREAOUTLINE = $8;
  482.   NEWLAYERINFO_CALLED = $1;
  483.   PAL = $4;
  484.   PFB_FINE_SCROLL_SHIFT = $4;
  485.   HOLDNMODIFY = $800;
  486.   LEFTHIT = $4;
  487.   MUSTDRAW = $8;
  488.   B2SWAP = $1;
  489.   RINGTRIGGER = $1;
  490.   B2NORM = $0;
  491.   VPOSRLOF = $8000;
  492.   SPRITE_ATTACHED = $80;
  493.   EXTRA_HALFBRITE = $80;
  494.   PF2PRI = $40;
  495.   LAYERSIMPLE = $1;
  496.   FPB_WIDEDOT = $4;
  497.   FPB_REMOVED = $7;
  498.   COLORON = $200;
  499.   ANFRACSIZE = $6;
  500.   FPB_TALLDOT = $3;
  501.   FPF_WIDEDOT = $10;
  502.   GENLOC = $2;
  503.   FPB_PROPORTIONAL = $5;
  504.   MODE_640 = $8000;
  505.   FPF_REMOVED = $80;
  506.   BACKSAVED = $100;
  507.   NOCROSSFILL = $20;
  508.   VP_HIDE = $2000;
  509.   B2BOBBER = $2;
  510.   FRST_DOT = $1;
  511.   FPF_TALLDOT = $8;
  512.   FPF_PROPORTIONAL = $20;
  513.   DUALPF = $400;
  514.   OVERLAY = $4;
  515.   FPB_REVPATH = $2;
  516.   BDRAWN = $200;
  517.   BUSERFLAGS = $FF;
  518.   BITCLR = $0;
  519.   DIW_VRTCL_POS = $1FF;
  520.   FSB_ITALIC = $2;
  521.   FPF_REVPATH = $4;
  522.   DIW_HORIZ_POS = $7F;
  523.   BOBNIX = $800;
  524.   PFA_FINE_SCROLL = $F;
  525.   ONE_DOT = $2;
  526.   DFTCH_MASK = $FF;
  527.   COMPLEMENT = $2;
  528.   FSF_ITALIC = $4;
  529.   SPRITES = $4000;
  530.   ISLESSX = $1;
  531.   FSB_UNDERLINED = $0;
  532.   ISLESSY = $2;
  533.   VSPRITE = $1;
  534.   FPB_ROMFONT = $0;
  535.   COPPER_WAIT = $1;
  536.   LAYERBACKDROP = $40;
  537.   FSF_UNDERLINED = $1;
  538.   BITSET = $8000;
  539.   COPPER_MOVE = $0;
  540.   BOBUPDATE = $200;
  541.   FPF_ROMFONT = $1;
  542.   DBLPF = $400;
  543.   INTERLACE = $4;
  544.   ISGRTRX = $4;
  545.   ISGRTRY = $8;
  546.   OUTSTEP = $2000;
  547.   LAYER_CLIPRECTS_LOST = $100;
  548.   SUSERFLAGS = $FF;
  549.   JAM1 = $0;
  550.   BOBISCOMP = $2;
  551.   JAM2 = $1;
  552.   PLNCNTSHFT = $C;
  553.   LAYERSMART = $2;
  554.   TOPHIT = $1;
  555.   BORDERHIT = $0;
  556.   SAVEBACK = $2;
  557.   ANIMHALF = $20;
  558.   LMN_REGION = $FFFFFFFF;
  559.   GENLOCK_AUDIO = $100;
  560.   LAYERSUPER = $4;
  561.   PF_FINE_SCROLL_MASK = $F;
  562.   LACE = $4;
  563.   LAYERUPDATING = $10;
  564.   HIRES = $8000;
  565.   GENLOCK_VIDEO = $2;
  566.   PFBA = $40;
  567.   FPB_DESIGNED = $6;
  568.   FPF_DESIGNED = $40;
  569.   VSOVERFLOW = $800;
  570.   BOTTOMHIT = $2;
  571.   PLNCNTMSK = $7;
  572.   BWAITING = $100;
  573.   INVERSVID = $4;
  574.   CPRNXTBUF = $2;
  575.   BOBSAWAY = $400;
  576.   BLITMSG_FAULT = $4;
  577.   FSB_BOLD = $1;
  578.   CPR_NT_LOF = $8000;
  579.   FS_NORMAL = $0;
  580.   FSB_EXTENDED = $3;
  581.   LAYERREFRESH = $80;
  582.  
  583.  
  584. Function BltBitMap
  585.          (srcBitMap: pBitMap;
  586.           srcX: Integer;
  587.           srcY: Integer;
  588.           destBitMap: pBitMap;
  589.           destX: Integer;
  590.           destY: Integer;
  591.           sizeX: Integer;
  592.           sizeY: Integer;
  593.           minterm: ShortInt;
  594.           mask: ShortInt;
  595.           tempA: pInteger): LongInt;
  596.  
  597. Procedure BltTemplate
  598.          (source: pInteger;
  599.           srcX: Integer;
  600.           srcMod: Integer;
  601.           destRastPort: pRastPort;
  602.           destX: Integer;
  603.           destY: Integer;
  604.           sizeX: Integer;
  605.           sizeY: Integer);
  606.  
  607. Procedure ClearEOL (rastPort: pRastPort);
  608. Procedure ClearScreen (rastPort: pRastPort);
  609. Function TextLength
  610.          (RastPort: pRastPort;
  611.           string_: String;
  612.           count: Integer): Integer;
  613.  
  614. Procedure Text_
  615.          (RastPort: pRastPort;
  616.           string_: String;
  617.           count: Integer);
  618.  
  619. Procedure SetFont
  620.          (RastPortID: pRastPort;
  621.           textFont: pTextFont);
  622.  
  623. Function OpenFont (textAttr: pTextAttr): pTextFont;
  624. Procedure CloseFont (textFont: pTextFont);
  625. Function AskSoftStyle (rastPort: pRastPort): LongInt;
  626. Function SetSoftStyle
  627.          (rastPort: pRastPort;
  628.           style: LongInt;
  629.           enable: LongInt): LongInt;
  630.  
  631. Procedure AddBob
  632.          (bob: pBob;
  633.           rastPort: pRastPort);
  634.  
  635. Procedure AddVSprite
  636.          (vSprite: pVSprite;
  637.           rastPort: pRastPort);
  638.  
  639. Procedure DoCollision (rasPort: pRastPort);
  640. Procedure DrawGList
  641.          (rastPort: pRastPort;
  642.           viewPort: pViewPort);
  643.  
  644. Procedure InitGels
  645.          (dummyHead: pVSprite;
  646.           dummyTail: pVSprite;
  647.           GelsInfo: pGelsInfo);
  648.  
  649. Procedure InitMasks (vSprite: pVSprite);
  650. Procedure RemIBob
  651.          (bob: pBob;
  652.           rastPort: pRastPort;
  653.           viewPort: pViewPort);
  654.  
  655. Procedure RemVSprite (vSprite: pVSprite);
  656. Procedure SetCollision
  657.          (type_: LongInt;
  658.           routine: Pointer;
  659.           gelsInfo: pGelsInfo);
  660.  
  661. Procedure SortGList (rastPort: pRastPort);
  662. Procedure AddAnimOb
  663.          (obj: pAnimOb;
  664.           animationKey: ppAnimOb;
  665.           rastPort: pRastPort);
  666.  
  667. Procedure Animate
  668.          (animationKey: ppAnimOb;
  669.           rastPort: pRastPort);
  670.  
  671. Function GetGBuffers
  672.          (animationObj: pAnimOb;
  673.           rastPort: pRastPort;
  674.           doubleBuffer: Boolean): Boolean;
  675.  
  676. Procedure InitGMasks (animationObj: pAnimOb);
  677. Procedure DrawEllipse
  678.          (rastPort: pRastPort;
  679.           cx: Integer;
  680.           cy: Integer;
  681.           a: Integer;
  682.           b: Integer);
  683.  
  684. Function AreaEllipse
  685.          (rastPort: pRastPort;
  686.           cx: Integer;
  687.           cy: Integer;
  688.           a: Integer;
  689.           b: Integer): LongInt;
  690.  
  691. Procedure LoadRGB4
  692.          (viewPort: pViewPort;
  693.           colors: pInteger;
  694.           count: Integer);
  695.  
  696. Procedure InitRastPort (rastPort: pRastPort);
  697. Procedure InitVPort (viewPort: pViewPort);
  698. Procedure MrgCop (view: pView);
  699. Procedure MakeVPort
  700.          (view: pView;
  701.           viewPort: pViewPort);
  702.  
  703. Procedure LoadView (view: pView);
  704. Procedure WaitBlit;
  705. Procedure SetRast
  706.          (rastPort: pRastPort;
  707.           color: ShortInt);
  708.  
  709. Procedure Move_
  710.          (rastPort: pRastPort;
  711.           x: Integer;
  712.           y: Integer);
  713.  
  714. Procedure Draw
  715.          (rastPort: pRastPort;
  716.           x: Integer;
  717.           y: Integer);
  718.  
  719. Function AreaMove
  720.          (rastPort: pRastPort;
  721.           x: Integer;
  722.           y: Integer): LongInt;
  723.  
  724. Function AreaDraw
  725.          (rastPort: pRastPort;
  726.           x: Integer;
  727.           y: Integer): LongInt;
  728.  
  729. Function AreaEnd (rastPort: pRastPort): LongInt;
  730. Procedure WaitTOF;
  731. Procedure QBlit (blit: pbltnode);
  732. Procedure InitArea
  733.          (areaInfo: pAreaInfo;
  734.           vectorTable: Pointer;
  735.           vectorTableSize: Integer);
  736.  
  737. Procedure SetRGB4
  738.          (viewPort: pViewPort;
  739.           index: Integer;
  740.           r: ShortInt;
  741.           g: ShortInt;
  742.           b: ShortInt);
  743.  
  744. Procedure QBSBlit (blit: pbltnode);
  745. Procedure BltClear
  746.          (memory: Pointer;
  747.           size: LongInt;
  748.           flags: LongInt);
  749.  
  750. Procedure RectFill
  751.          (rastPort: pRastPort;
  752.           xl: Integer;
  753.           yl: Integer;
  754.           xu: Integer;
  755.           yu: Integer);
  756.  
  757. Procedure BltPattern
  758.          (rastPort: pRastPort;
  759.           ras: Pointer;
  760.           xl: Integer;
  761.           yl: Integer;
  762.           maxX: Integer;
  763.           maxY: Integer;
  764.           fillBytes: Integer);
  765.  
  766. Function ReadPixel
  767.          (rastPort: pRastPort;
  768.           x: Integer;
  769.           y: Integer): LongInt;
  770.  
  771. Function WritePixel
  772.          (rastPort: pRastPort;
  773.           x: Integer;
  774.           y: Integer): LongInt;
  775.  
  776. Function Flood
  777.          (rastPort: pRastPort;
  778.           mode: LongInt;
  779.           x: Integer;
  780.           y: Integer): Boolean;
  781.  
  782. Procedure PolyDraw
  783.          (rastPort: pRastPort;
  784.           count: Integer;
  785.           polyTable: pInteger);
  786.  
  787. Procedure SetAPen
  788.          (rastPort: pRastPort;
  789.           pen: ShortInt);
  790.  
  791. Procedure SetBPen
  792.          (rastPort: pRastPort;
  793.           pen: ShortInt);
  794.  
  795. Procedure SetDrMd
  796.          (rastPort: pRastPort;
  797.           drawMode: ShortInt);
  798.  
  799. Procedure InitView (view: pView);
  800. Procedure CBump (copperList: pUCopList);
  801. Procedure CMove_
  802.          (copperList: pUCopList;
  803.           destination: Pointer;
  804.           data: Integer);
  805.  
  806. Procedure CWait_
  807.          (copperList: pUCopList;
  808.           x: Integer;
  809.           y: Integer);
  810.  
  811. Function VBeamPos: LongInt;
  812. Procedure InitBitMap
  813.          (bitMap: pBitMap;
  814.           depth: ShortInt;
  815.           width: Integer;
  816.           height: Integer);
  817.  
  818. Procedure ScrollRaster
  819.          (rastPort: pRastPort;
  820.           dX: Integer;
  821.           dY: Integer;
  822.           minx: Integer;
  823.           miny: Integer;
  824.           maxx: Integer;
  825.           maxy: Integer);
  826.  
  827. Procedure WaitBOVP (viewport: pViewPort);
  828. Function GetSprite
  829.          (simplesprite: pSimpleSprite;
  830.           num: Integer): Integer;
  831.  
  832. Procedure FreeSprite (num: Integer);
  833. Procedure ChangeSprite
  834.          (vp: pViewPort;
  835.           simplesprite: pSimpleSprite;
  836.           data: Pointer);
  837.  
  838. Procedure MoveSprite
  839.          (viewport: pViewPort;
  840.           simplesprite: pSimpleSprite;
  841.           x: Integer;
  842.           y: Integer);
  843.  
  844. Procedure LockLayerRom (layer: pLayer);
  845. Procedure UnlockLayerRom (layer: pLayer);
  846. Procedure SyncSBitMap (l: pLayer);
  847. Procedure CopySBitMap (l: pLayer);
  848. Procedure OwnBlitter;
  849. Procedure DisownBlitter;
  850. Procedure InitTmpRas
  851.          (tmpras: pTmpRas;
  852.           buff: Pointer;
  853.           size: LongInt);
  854.  
  855. Procedure AskFont
  856.          (rastPort: pRastPort;
  857.           textAttr: pTextAttr);
  858.  
  859. Procedure AddFont (textFont: pTextFont);
  860. Procedure RemFont (textFont: pTextFont);
  861. Function AllocRaster
  862.          (width: Integer;
  863.           height: Integer): pShortInt;
  864.  
  865. Procedure FreeRaster
  866.          (planeptr: pShortInt;
  867.           width: Integer;
  868.           height: Integer);
  869.  
  870. Procedure AndRectRegion
  871.          (rgn: pRegion;
  872.           rect: pRectangle);
  873.  
  874. Function OrRectRegion
  875.          (rgn: pRegion;
  876.           rect: pRectangle): Boolean;
  877.  
  878. Function NewRegion: pRegion;
  879. Function ClearRectRegion
  880.          (rgn: pRegion;
  881.           rect: pRectangle): Boolean;
  882.  
  883. Procedure ClearRegion (rgn: pRegion);
  884. Procedure DisposeRegion (rgn: pRegion);
  885. Procedure FreeVPortCopLists (viewport: pViewPort);
  886. Procedure FreeCopList (coplist: pCopList);
  887. Procedure ClipBlit
  888.          (srcrp: pRastPort;
  889.           srcX: Integer;
  890.           srcY: Integer;
  891.           destrp: pRastPort;
  892.           destX: Integer;
  893.           destY: Integer;
  894.           sizeX: Integer;
  895.           sizeY: Integer;
  896.           minterm: ShortInt);
  897.  
  898. Function XorRectRegion
  899.          (rgn: pRegion;
  900.           rect: pRectangle): Boolean;
  901.  
  902. Procedure FreeCprList (cprlist: pcprlist);
  903. Function GetColorMap (entries: LongInt): pColorMap;
  904. Procedure FreeColorMap (colormap: pColorMap);
  905. Function GetRGB4
  906.          (colormap: pColorMap;
  907.           entry: LongInt): LongInt;
  908.  
  909. Procedure ScrollVPort (vp: pViewPort);
  910. Function UCopperListInit
  911.          (copperlist: pUCopList;
  912.           num: Integer): pCopList;
  913.  
  914. Procedure FreeGBuffers
  915.          (animationObj: pAnimOb;
  916.           rastPort: pRastPort;
  917.           doubleBuffer: Boolean);
  918.  
  919. Function BltBitMapRastPort
  920.          (srcbm: pBitMap;
  921.           srcx: Integer;
  922.           srcy: Integer;
  923.           destrp: pRastPort;
  924.           destX: Integer;
  925.           destY: Integer;
  926.           sizeX: Integer;
  927.           sizeY: Integer;
  928.           minterm: ShortInt): Boolean;
  929.  
  930. Function OrRegionRegion
  931.          (src: pRegion;
  932.           dst: pRegion): Boolean;
  933.  
  934. Function XorRegionRegion
  935.          (src: pRegion;
  936.           dst: pRegion): Boolean;
  937.  
  938. Function AndRegionRegion
  939.          (src: pRegion;
  940.           dst: pRegion): Boolean;
  941.  
  942. Procedure SetRGB4CM
  943.          (cm: pColorMap;
  944.           i: Integer;
  945.           r: ShortInt;
  946.           g: ShortInt;
  947.           b: ShortInt);
  948.  
  949. Procedure BltMaskBitMapRastPort
  950.          (srcbm: pBitMap;
  951.           srcx: Integer;
  952.           srcy: Integer;
  953.           destrp: pRastPort;
  954.           destX: Integer;
  955.           destY: Integer;
  956.           sizeX: Integer;
  957.           sizeY: Integer;
  958.           minterm: ShortInt;
  959.           bltmask: Pointer);
  960.  
  961. Function AttemptLockLayerRom (layer: pLayer): Boolean;
  962.  
  963.  
  964. Function AreaCircle
  965.          (rastPort: pRastPort;
  966.           cx: Integer;
  967.           cy: Integer;
  968.           r: Integer): LongInt;
  969.  
  970. Procedure DrawCircle
  971.          (rastPort: pRastPort;
  972.           cx: Integer;
  973.           cy: Integer;
  974.           r: Integer);
  975.  
  976. Procedure SetOPen
  977.          (w: pRastPort;
  978.           c: ShortInt);
  979.  
  980. Procedure SetWrMsk
  981.          (w: pRastPort;
  982.           m: ShortInt);
  983.  
  984. Procedure SetDrPt
  985.          (w: pRastPort;
  986.           p: Integer);
  987.  
  988. Procedure SetAfPt
  989.          (w: pRastPort;
  990.           p: pInteger;
  991.           n: ShortInt);
  992.  
  993. Function RASSIZE
  994.          (w: Integer;
  995.           h: Integer): LongInt;
  996.  
  997. Procedure CINIT
  998.          (copperlist: pUCopList;
  999.           num: Integer);
  1000.  
  1001. Procedure CMOVE
  1002.          (copperList: pUCopList;
  1003.           var destination: Pointer;
  1004.           data: Integer);
  1005.  
  1006. Procedure CWAIT
  1007.          (copperList: pUCopList;
  1008.           x: Integer;
  1009.           y: Integer);
  1010.  
  1011. Procedure CEND (copperList: pUCopList);
  1012. Procedure BNDRYOFF (w: pRastPort);
  1013. Procedure OFF_DISPLAY (custom: pCustom);
  1014. Procedure ON_DISPLAY (custom: pCustom);
  1015. Procedure OFF_SPRITE (custom: pCustom);
  1016. Procedure ON_SPRITE (custom: pCustom);
  1017. Procedure OFF_VBLANK (custom: pCustom);
  1018. Procedure ON_VBLANK (custom: pCustom);
  1019. Procedure InitAnimate (var animkey: pAnimOb);
  1020. Procedure RemBob (bob: pVSprite);
  1021.  
  1022.  
  1023. End.
  1024.